﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace YXShop.IDAL.Product
{
    /// <summary>
    /// 接口层IProductType 的摘要说明。
    /// </summary>
    public interface IProductType
    {
        #region  成员方法
        /// <summary>
        /// 增加一条数据
        /// </summary>
        int Add(YXShop.Model.Product.ProductType model);
        void AddProductProperty(YXShop.Model.Product.ProductTypeProperty model);
        /// <summary>
        /// 增加商品类型（商品参数）
        /// </summary>
        /// <param name="model"></param>
        void AddProductParameter(YXShop.Model.Product.ProductTypeParameter model);
        /// <summary>
        /// 增加商品类型（用户购买必需项）
        /// </summary>
        /// <param name="model"></param>
        void AddProductBuySet(YXShop.Model.Product.ProductTypeBuySet model);
        /// <summary>
        /// 更新一条数据
        /// </summary>
        int Update(YXShop.Model.Product.ProductType model);
        int UpdateProductProperty(YXShop.Model.Product.ProductTypeProperty model, int productTypeId);
        /// <summary>
        /// 更新一条数据(商品参数)
        /// </summary>
        int UpdateProductParameter(YXShop.Model.Product.ProductTypeParameter model, int productTypeId);
        /// <summary>
        /// 更新一条数据(用户购买必需项)
        /// </summary>
        int UpdateProductBuySet(YXShop.Model.Product.ProductTypeBuySet model, int productTypeId);
        /// <summary>
        /// 任意修改一个字段
        /// </summary>
        /// <param name="id"></param>
        /// <param name="columnName"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        int Amend(int id, string columnName, Object value);
        /// <summary>
        /// 删除一条数据
        /// </summary>
        void Delete(int Id);
        /// <summary>
        /// 删除一条数据(商品属性)
        /// </summary>
        void DeleteProductProperty(int id, int productTypeId);
         /// <summary>
        /// 删除一条数据(商品参数)
        /// </summary>
        int DeleteProductParameter(int id, int productTypeId);
        /// <summary>
        /// 删除一条数据(用户购买必需项)
        /// </summary>
        int DeleteProductBuySet(int id, int productTypeId);
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        YXShop.Model.Product.ProductType GetModel(int Id);
        YXShop.Model.Product.ProductTypeProperty GetProductPropertyModel(int Id, int productTypeId);
        /// <summary>
        /// 商品类型商品属性得到一个对象实体(商品参数)
        /// </summary>
        YXShop.Model.Product.ProductTypeParameter GetProductParameterModel(int Id, int productTypeId);
        /// <summary>
        /// 商品类型商品属性得到一个对象实体(用户购买必需项)
        /// </summary>
        YXShop.Model.Product.ProductTypeBuySet GetProductBuySetModel(int Id, int productTypeId);
        /// <summary>
        /// 获得数据列表
        /// </summary>
        /// <returns></returns>
        ChangeHope.DataBase.DataByPage GetList();
        /// <summary>
        /// 获取属性表名与品牌
        /// </summary>
        /// <param name="cid">商品分类ID</param>
        /// <returns></returns>
        System.Data.DataTable GetProductTypeBrandAndProperty(int cid);
         /// <summary>
        /// 根据条件得到列表(商品类型)
        /// </summary>
        /// <param name="strWhere"></param>
        /// <returns></returns>
        List<YXShop.Model.Product.ProductType> GetAllByWhere(string strWhere);
        /// <summary>
        /// 商品类型商品属性查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ChangeHope.DataBase.DataByPage GetProductPropertyList(int id);
        /// <summary>
        /// 根据条件得到List列表(商品属性)
        /// </summary>
        /// <param name="productTypeId"></param>
        /// <returns></returns>
        List<YXShop.Model.Product.ProductTypeProperty> GetProductPropertyAllByWhere(int productTypeId, string strWhere);
        /// <summary>
        /// 根据条件得到List列表(商品参数)
        /// </summary>
        /// <param name="productTypeId"></param>
        /// <returns></returns>
        List<YXShop.Model.Product.ProductTypeParameter> GetProductParameterAllByWhere(int productTypeId, string strWhere);
        /// <summary>
        /// 商品类型(商品参数)
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ChangeHope.DataBase.DataByPage GetProductParameterList(int id, int SeriesId);
        /// <summary>
        /// 商品类型(用户购买必需项)
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ChangeHope.DataBase.DataByPage GetProductBuySetList(int id);
        #endregion  成员方法
    }
}
